#ifndef BEESOLVER_H
#define BEESOLVER_H
#include "samegame.h"
#include <vector>
#include <algorithm>
#include "sgalgorithm.h"

class BeeSolver
{
public:
    BeeSolver(sameGame &sg);
    BeeSolver(BeeSolver &bee);
    std::vector<SGPoint> steps;
    int result;
    int score;
    sameGame game;
    sameGame *copy_of_game;
    void searchInNeighborhood();

};
bool sortBees(const BeeSolver* b1, const BeeSolver* b2);
class SolverBeeAlgorithm: public  SGalgorithm
{
public:
    SolverBeeAlgorithm();
    virtual SGSolution solve(sameGame sg);
    virtual operator std::string()
    {
        return std::string("Algorytm pszczeli");
    }
    static int bees;
    static int bBees;
    static int eBees;
    static int bSources;
    static int eSources;
    static int iterations;
    BeeSolver *bestBee;
    int sumScore;
    int getSumScore(){return sumScore;}

};



#endif // BEESOLVER_H
